﻿using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Collections.Generic;
using System.Windows.Browser;
using DiscoveryLogic.DataServices.DataSources;

namespace DiscoveryLogic.UI.Layouts.Models
{
    public class InvestmentPortfolio
    {
        private double portfolioValue;
        private IList<Investment> investments = new List<Investment>();

        public double PortfolioValue
        {
            get { return portfolioValue; }
            set { portfolioValue = value; }
        }

        public Investment this[int index]
        {
            get { return investments[index]; }
            set { investments[index] = value; }
        }

        public void Add(Investment newInvestment){
            investments.Add(newInvestment);
        }

        public int Count
        {
            get
            {
                return investments.Count;
            }
        }

        public Dictionary<string, double> GetAssetAllocationBreakDown() {
            Dictionary<string, double> assetBreakDown = new Dictionary<string,double>();
            assetBreakDown.Add(AssetAllocation.DomesticStock.ToString(), 46.74);
            assetBreakDown.Add(AssetAllocation.ForeignStock.ToString(), 6.36);
            assetBreakDown.Add(AssetAllocation.Bond.ToString(), 4.63);
            assetBreakDown.Add(AssetAllocation.ShortTerm.ToString(), 21.42);
            assetBreakDown.Add(AssetAllocation.Other.ToString(), 20.85);
            return assetBreakDown;
        }

        public Dictionary<string, double> GetIndustryExposureBreakDown() { 
            Dictionary<string, double> industryBreakDown = new Dictionary<string,double>();
            industryBreakDown.Add(Industry.Software.ToString(), 19.42);
            industryBreakDown.Add(Industry.Hardware.ToString(), 4.98);
            industryBreakDown.Add(Industry.Media.ToString(), 9.23);
            industryBreakDown.Add(Industry.Telecom.ToString(), 8.52);
            industryBreakDown.Add(Industry.FinancialServices.ToString(), 34.53);
            industryBreakDown.Add(Industry.ConsumerGoods.ToString(), 13.23);
            industryBreakDown.Add(Industry.BusinessServices.ToString(), 10.08);
            return industryBreakDown;
        }

        public Dictionary<string, double> GetEquityStyleBreakDown() { 
            return null;
        }
    }
}
